#ifndef NUMBER_H
#define NUMBER_H

#include "Object.h"

class Number : public Object
{
public:
	Number(double number);
	~Number();
	double operator++();
	double operator--();
	double operator+(var& o);
	double operator-(var& o);
	double operator/(var& o);
    double operator*(var& o);
	double operator%(var& o);
	double operator+(double o);
	double operator-(double o);
	double operator/(double o);
    double operator*(double o);
	double operator%(double o);
	double operator-();

	bool operator ==(var& o);
	bool operator !=(var& o);
	bool operator <(var& o);
	bool operator >(var& o);
	bool operator <=(var& o);
	bool operator >=(var& o);

	bool operator ==(double o);
	bool operator !=(double o);
	bool operator <(double o);
	bool operator >(double o);
	bool operator <=(double o);
	bool operator >=(double o);

	friend double operator+(double number, var& o);
	friend double operator-(double number, var& o);
	friend double operator/(double number, var& o);
	friend double operator*(double number, var& o);
	friend double operator%(double number, var& o);

	virtual void   operator+=(var& o);
	virtual void   operator-=(var& o);
	virtual void   operator/=(var& o);
	virtual void   operator*=(var& o);
	virtual void   operator%=(var& o);

	virtual void   operator+=(double o);
	virtual void   operator-=(double o);
	virtual void   operator/=(double o);
	virtual void   operator*=(double o);
	virtual void   operator%=(double o);

	const char* toString();

	double m_number;
    //char* m_string;
};

#endif